package com.dudu.service;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.dudu.bean.AppExtendBean;

/**
 * 账号相关操作
 * @author 危东
 * @date 2016-4-20
 */
public interface IAccountManageService {
	/**
	 * 7.1.1	账号信息列表接口
  	 * H5页面在注册前，H5页面输入“关联码”、关联手机号等然后调用此接口。
     * 返回与关联码一致的所有账号，让用户进行选择。
     *  6.38　由关联关系查询计费账号信息列表接口
	 * @param periphery_code  外围系统编码
	 * @param mobile 手机号码
	 * @param relatedCode 嘟嘟关联账号
	 * @return
	 */
	public JSONObject queryCustAccountByRelateInfo(String periphery_code,String mobile,String relatedCode);
	/**
	 * 
	 *  7.1.2	账号注册接口（强制合并）
  	 *	客户调用此接口，只要是关联码一致的账号全部合成一个新的账号。
  	 *	返回：主账号信息，副账号信息（被合并的账号）
	 *	6.42　授权账号注册（强制合并T）接口
	 * @param periphery_code 外系统编码
	 * @param company_identify 企业（个人）标识
	 * @param email  邮箱
	 * @param relevancePhone 关系手机号
	 * @param app_key  应用标识
	 * @param channelAccount 渠道码
	 * @param companyName 企业名称
	 * @param linker 联系人
	 * @param relatedCode 关联码
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @param appExtendBean 
	 * @return
	 */
	public JSONObject OauthCombineForceInterface(String periphery_code,String company_identify,String email,String relevancePhone,String app_key,String channelAccount,String companyName,String linker,String relatedCode,String statusUrl,String recordUrl,String ivrdigitUrl,AppExtendBean appExtendBean);
	//
	/**
	 * 7.1.3	账号注册接口（普通注册，不合并）
  	 * 用户选择不进行合并账号，想生成一个新的账号。
  	 *	返回：账号注册信息
 	 *	6.5　授权认证接口
	 * 运营平台接口
	 * @param appExtendBean App相关信息
	 * @param appKey 应用key
	 * @param peripheryCode 系统接入码
	 * @param companyIdentify 企业编码
	 * @param relevanceCode 账号关联码
	 * @param relevancePhone 手机号
	 * @param channelAccount 渠道码
	 * @param companyName 企业名称
	 * @param linker 联系人姓名
	 * @param email 邮箱
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @return
	 */
	public JSONObject accountRegiste(AppExtendBean appExtendBean, String appKey, String peripheryCode, String companyIdentify, String relevanceCode, String relevancePhone, String channelAccount, String companyName, String linker, String email, String statusUrl, String recordUrl, String ivrdigitUrl);
	/**
	 * 7.1.4	账号合并接口(OK)
  	 *   用户选择完主账号，副账号（被合并的账号）调用此接口进行合并操作。
  	 *   6.44　授权账号注册（合并）接口
	 * @param periphery_code 外围系统编码
	 * @param app_key  应用标识
	 * @param company_identify
	 * @param channelAccount 渠道码
	 * @param relatedCode 账号关联码
	 * @param cust_account 主账号
	 * @param accounts 被合并账号此为JSONArray(combine_cust_account)
	 * @return
	 */
	public JSONObject OauthCombineInterface(String periphery_code,String app_key,String company_identify,String channelAccount,String relatedCode,String cust_account,JSONArray accounts );
	/**
	 *  7.1.6	账号信息更新接口（强制合并）
   	 *	客戾调用更新接口时输入关联码，强制把关联码一致的账号全部合成一个新的账号。
   	 *	返回：主账号信息，副账号信息（被合并的账号）
   	 *	6.43　客户信息修改（强制合并T）接口
   	 * @param appkey 应用标识
   	 * @param periphery_code 外系统编码
   	 * @param cust_account 客户账号
	 * @param email //管理员账号邮箱
	 * @param relevancePhone //管理员手机号
	 * @param channelAccount //渠道码
	 * @param companyName //企业名称
	 * @param linker
	 * @param relatedCode //嘟嘟关联账号
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @return
	 */
	public JSONObject UpdateCustomerForceInfo(String appkey,String periphery_code,String cust_account,String email,String relevancePhone,String channelAccount,String companyName,String linker,String relatedCode, String statusUrl, String recordUrl, String ivrdigitUrl);
	/**
	 * 7.1.7	账号信息更新接口（普通更新，不合并）
   	 *	信息账号的基本信息。
   	 *	返回：账号基本信息
     *	6.13　客户信息修改接口
	 * @param cust_account 客户账号
	 * @param email //管理员账号邮箱
	 * @param relevancePhone //管理员手机号
	 * @param channelAccount //渠道码
	 * @param companyName //企业名称
	 * @param linker
	 * @param relatedCode //嘟嘟关联账号
	 * @param statusUrl 状态推送地址
	 * @param recordUrl 话单推送地址
	 * @param ivrdigitUrl IVR推送地址
	 * @return
	 */
	public JSONObject UpdateCustomerInfo(String cust_account,String email,String relevancePhone,String channelAccount,String companyName,String linker,String relatedCode,String statusUrl, String recordUrl, String ivrdigitUrl);
	/**
	 * 7.1.9 更新关联码,并返回账号列表
	 * @param cust_account  客户账号
	 * @param app_key   app_key
	 * @param mobilePhone  //管理员手机号
	 * @param channel_account  //渠道码
	 * @param relatedCode  //嘟嘟关联账号
	 * @param periphery_code  外系统编码
	 * @return
	 */
	public JSONObject updQueryCustAccountByRelateInfo(String cust_account,String app_key,String mobilePhone,String channel_account,String relatedCode,String periphery_code,String email);
	/**
	 * 7.2.0 合并计费账户接口
	 * @param app_key
	 * @param cust_account
	 * @param accounts
	 * @return
	 */
	public JSONObject CombineCustAccount(String app_key,String cust_account,JSONArray accounts);
	
	/**
	 * 查询账号(企业 )信息
	 * @param page_no 当前页
	 * @param pageSize 一页显示多少条
	 * @param isv_name ISV名称
	 * @param app_name 应用名称
	 * @param cust_account 账号标识
	 * @return JSONObject(totalItemNum,items)
	 */
	public JSONObject queryAll(Integer page_no, Integer pageSize,String isv_name,String app_name,String cust_account);
	/**
	 * 根据账号查询账号信息
	 * @param cust_account
	 * @return
	 */
	public JSONObject queryCustomerInfo(String cust_account);
	
}
